package com.learn.controller;

import com.learn.domain.Pseron1;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @Author fengqq
 * @Description 使用Thymeleaf
 * @Date 2024/8/16  11:39
 *
 * SpringMVC:配置  TemplateResolver模板解析器，TemplateEngine模板引擎， ViewResolver 视图解析器
 * SpringBoot:
 *      1.引入 Thymeleaf 场景启动器，生效自动配置 默认是自动开启 则无需配置三大核心类
 *      2.默认模板页面存储的位置  classpath:/templates/xxx.html
 *      3.模板页面不是 静态资源 不能通过地址栏 来直接访问，必须通过Controller层使用视图解析器来渲染
 *
 * SpringBoot使用Thymeleaf的步骤：
 *      1.在页面中 引入 thymeleaf的命名空间 会自动提示
 *          <html lang="en" xmlns:th="http://www.thymeleaf.org">
 *      2.在页面中 编写 表达式
 *          <h3 th:text="${username}">xxx</h3>
 *      3.在controller层的方法中 定义方法，封装model域数据用于页面渲染，返回值是视图名称
 */
@Controller
@Slf4j
public class TestController {

    @GetMapping("/test.html")
    public String showTest(Model model){
        model.addAttribute("username","张三");
        return "test"; // 由 视图解析器来 确定视图组件的位置 classpath:/templates/返回值.html
    }

    @PostMapping("/addPerson")
    @ResponseBody
    public Pseron1 addPerson(Pseron1 pseron1){

        log.info("pseron1 = " + pseron1);
        return pseron1; // 由 视图解析器来 确定视图组件的位置 classpath:/templates/返回值.html
    }
}
